package about_collections.Hash;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * LinkedHashMap满的时候移除最近没有访问过的数据(查构造方法,分析对象构建)
 */
public class LinkedHashMapLruDemo {
    public static void main(String[] args) {
        int initialCapacity=3;//初始容量
        LinkedHashMap<String, String> map =
                new LinkedHashMap<String, String>(
                    initialCapacity,    //初始容量
                0.75f,        //负载因子
                true)       //是否记录访问顺序(true记录)
        {
            protected boolean removeEldestEntry(Map.Entry<String,String> eldest) {
                return size()>initialCapacity;//true表示移除
            }
        };
        map.put("a","1");
        map.put("b","2");
        map.put("c","3");
        map.get("a");//访问key为a的节点,尾部节点变为b
        map.put("d","4");


        System.out.println(map);//{b=2, c=3, d=4}从尾部节点开始读
        // 添加访问map.get("a");后变成 {c=3, a=1, d=4}


    }
}
